/*****路由器模块：封装着与user相关的路由*******/
//引入必需的模块
const express = require('express')
const pool = require('../pool')
const router = express.Router()
module.exports = router


/*路由：向客户端输出商品列表
    请求方法：GET
    接口地址：/v2/product/list
    请求查询字符串数据:pageSize - (可选)一次查询几条数据,如果未指定,则默认返回10条记录
*/
router.get('/list', (req, res) => {
	let ps = req.query.pageSize
	ps = ps ? parseInt(ps) : 10 //如果客户端提交了ps,则用原值;否则设置为10

	let sql = 'SELECT lid,title,price FROM xz_laptop LIMIT ?'
	pool.query(sql, ps, (err, result) => {
		if (err) throw err
		res.send(result)

	})
})

/*
接口地址:/v2/product/Listbypage  分页向客户端返回商品数据
请求参数：
 请求参数:pageSize - 每页显示的记录数
              pageNum - 要显示的页号			
     返回数据:JSON格式, 形如[{"lid":11,"title":"戴尔","price":3500},...{}]
*/
router.get('/listbypage', (req, res) => {
	let ps = req.query.pageSize //接收客户端提交的请求数据:页面大小
	ps = parseInt(ps) //把请求查询字符串中的字符串解析为整数
	let pn = req.query.pageNum //接收客户端提交的请求数据:页号

	//从数据库中的哪条记录开始读取 
	let start = (pn - 1) * ps //此处有一个隐式类型转换：string>number
	let sql = 'SELECT lid,title,price FROM xz_laptop LIMIT ?,?'
	pool.query(sql, [start, ps], (err, result) => {
		if (err) throw err
		res.send(result) //result(JS对象) =>JSON.stringify()
	})
})


router.delete('/remove',(req,res)=>{
	    let lid= req.query.lid
	    lid = parseInt(lid)
	  let sql = 'delete from xz_laptop where lid=?'
	   
		pool.query(sql,lid, (err,result)=>{
		 if(err)throw err	
			if(result.affectedRows>0){    //affected  被影响  rows 行数
				  res.send('delete-success') //此处的响应消息主体是 text/plain
				
			}else{
				  res.send('delete-error')				
			}
		})
})

/*
接口地址:/v2/product/add   添加商品
请求主体:
   title - 商品名称
	 price - 单价  
返回数据:{"code":901,"lid":44}
*/
router.post('/add',(req,res)=>{
	  let t = req.body.title
	  let p = req.body.price
    
		let sql = 'insert into xz_laptop(title,price) values(?,?)'
    pool.query(sql,[t,p],(err,result)=>{
			   if(err)throw err
	       res.send(result)		
		})

})




